package com.ctshk.rpc.finance.service;


import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.rpc.finance.dto.onaccount.OnAccountApplyDetailDTO;
import com.ctshk.rpc.finance.dto.onaccount.OnAccountDetailDTO;
import com.ctshk.rpc.finance.dto.onaccount.OnAccountDetailListDTO;
import com.ctshk.rpc.finance.dto.onaccount.OnAccountListDTO;
import com.ctshk.rpc.finance.req.bill.RollBackReq;
import com.ctshk.rpc.finance.req.onaccount.*;

/**
 * <p>
 * 财务挂账信息 服务类
 * </p>
 *
 * @author 叶冠峰
 * @since 2021-03-30
 */
public interface IFinanceOnAccountService{

    /**
     * 列表
     * @param req
     * @return
     */
    Result<PageResponse<OnAccountListDTO>> list(OnAccountListReq req);

    /**
     * 申请挂账
     * @param req
     * @return
     */
    Result add(OnAccountAddReq req);

    /**
     * 挂账详情
     * @param req
     * @return
     */
    Result<OnAccountDetailDTO> detail(OnAccountDetailReq req);

    /**
     * 挂账申请详情
     * @param req
     * @return
     */
    Result<OnAccountApplyDetailDTO> applyDetail(OnAccountApplyDetailReq req);

    /**
     * 审批
     * @param req
     * @return
     */
    Result approval(OnAccountApprovalReq req);

    /**
     * 申请销账-选择挂账明细列表
     * @param req
     * @return
     */
    Result<PageResponse<OnAccountDetailListDTO>> detailList(OnAccountDetailListReq req);

    /**
     * 撤回审批
     * @param req
     * @return
     */
    Result rollBack(RollBackReq req);
}
